package com.heatup.apt.management.service.datacenter;

import java.math.BigDecimal;
import java.util.Map;

public interface DataAnalysisService {
	
	/**
	 * 大盘数据分析 第一层数据异步加载
	 * 这里是一层一层的加载
	 * 不是全部一下子加载
	 * 
	 */
	public Map<String,Object> queryDataAnalysisLevelOne(Map<String,Object> parameMap);
	
	/**
	 * 大盘数据分析 第二层数据异步加载
	 * 这里是一层一层的加载
	 * 不是全部一下子加载
	 * 
	 */
	public Map<String,Object> queryDataAnalysisLevelTow(Map<String,Object> parameMap);
	
	/**
	 * 大盘数据分析 第三层数据异步加载
	 * 这里是一层一层的加载
	 * 不是全部一下子加载
	 * 
	 */
	public Map<String,Object> queryDataAnalysisLevelThree(Map<String,Object> parameMap);
	
	/**
	 * 大盘数据分析 第三层数据异步加载
	 * 这里是一层一层的加载
	 * 不是全部一下子加载
	 */
	public Map<String,Object> queryDataAnalysisLevelFour(Map<String,Object> parameMap);
	
	/**
	 * 汇总类数据（2016.12.01至当前的数据汇总）
	 * 
	 */
	public Map<String,Object> querySummaryDataToNow(Map<String,Object> parameMap);
	
	/**
	 * 教练复购率排行
	 */
	public Map<String,Object> repurchaseRateRankingToCoach(Map<String,Object> parameMap);
	
	/**
	 * 课程复购率排行
	 * 
	 */
	public Map<String,Object> repurchaseRateRankingToCourse(Map<String,Object> parameMap);
	
	/**
	 * 团课满课率排行
	 * 
	 */
	public Map<String,Object> teamFullClassRateRanking(Map<String,Object> parameMap);
	
	/**
	 * 大盘数据查看数据明细
	 * @param parameMap
	 * @return
	 */
	public Map<String,Object> dataAnalysisDetail(Map<String,Object> parameMap);
	
	
	/**
	 * 门店经营分析数据
	 * @param paramMap
	 * @return
	 */
	public Map<String,Object> storeFinancialAnalysisData(Map<String,Object> paramMap);
	
	/**
	 * 计算教练收入
	 * storeId：按门店
	 * yearMonth:按月计算
	 * startDate：开始日期
	 * endDate：结束日期
	 * @param paramMap
	 * @return
	 */
	public BigDecimal calculationCoachFee(Map<String, Object> paramMap);
	
	/**
	 * 按日期区间查询收支曲线图数据
	 * @param paramMap
	 * @return
	 */
	public Map<String,Object> queryBalanceMapByYearMonthRange(Map<String,Object> paramMap);
	
	/**
	 * 更新门店相关信息
	 * @param paramMap
	 */
	public void saveOrUpdateStoreBalanceDetail(Map<String,Object> paramMap);
	
	/**
	 * 统计门店包月卡相关数据
	 * @param paramMap
	 * @return
	 */
	public Map<String,Object> queryMonthCard(Map<String,Object> paramMap);
	
}
